package com.sinosoft.sm.system.role.dao;

import java.util.List;




import com.sinosoft.sm.system.role.entity.RoleEntity;
import com.sinosoft.sm.system.role.entity.UserRoleRefEntity;


/**
 * 角色信息映射接口
 * @author leichao
 *
 */
public interface RoleEntityMapper {

	/**
	 * 新增角色信息
	 * @param roleEntity
	 * @return true/false
	 */
	public boolean addRole(RoleEntity roleEntity);
	
	/**
	 * 删除角色信息
	 * @param id
	 * @return true/false
	 */
	public boolean deleteRoleById(String id);
	
	/**
	 * 批量删除角色信息
	 * @param ids
	 * @return true/false
	 */
	public boolean deleteRolesByIds(List<String> ids);
	
	/**
	 * 根据rid获取用户角色信息
	 * @param rid
	 * @return 用户角色信息集合
	 */
	public List<UserRoleRefEntity> getRoleUserRef2(String rid);
	
	/**
	 * 获取角色信息
	 * 此服务根据角色编号获取角色信息，若角色编号为空则返回空,根据id
	 * @param id
	 * @return 角色信息
	 */
	public RoleEntity getRoleById(String id);
	
	/**
	 * 条件查询
	 * @param roleEntity
	 * @return 角色信息集合
	 */
	public List<RoleEntity> getRoles(RoleEntity roleEntity);
	
    /**
	 * 根据用户编码获取角色信息
	 * @param userId
	 * @return 角色信息集合
	 */
    public List<RoleEntity> queryRolesByUserId (Integer userId);
    
    /**
     *  更新角色信息
     *  @param roleEntity
     *  @return true/false
     */
    public boolean updateRole(RoleEntity roleEntity);

    /**
     * 根据用户名获取用户角色信息
     * @param username
     * @return
     */
	public List<UserRoleRefEntity> getRolesByUser(String username);

	/**
	 * 获取所有角色信息
	 * @return
	 */
	public List<RoleEntity> getAllRoles();

	/**
	 * 添加用户角色信息
	 * @param roleRef 用户角色关联信息
	 */
	public void addRoleRef(UserRoleRefEntity roleRef);
    
}
